/*
 * DIM-SUM操作系统 -- 中断实现文件
 *
 * Copyright (C) 2023 国科础石(重庆)软件有限公司
 *
 * 作者: Dong Peng <w-pengdong@kernelsoft.com>
 *
 * License terms: GNU General Public License (GPL) version 3
 *
 */

#include <dim-sum/init.h>
#include <dim-sum/stddef.h>

#include <asm/irq.h>

void (*handle_arch_irq)(struct exception_spot *) = NULL;

/**
 * 设置中断处理函数
 * 如gic_handle_irq
 */
void __init set_chip_irq_handle(void (*handle_irq)(struct exception_spot *))
{
	if (handle_arch_irq)
		return;
	
	handle_arch_irq = handle_irq;
}

static void irqchip_init_default(void)
{

	riscv_cpu_irq_init();

	printk("Support interrupt\n");
}

void __init setup_IRQ(void)
{
	/**
	 * 没有使用ACPI和设备树。使用默认配置
	 */
	irqchip_init_default();
}

void __init arch_init_irq(void)
{
	setup_IRQ();
}
